Cloud-based computing generally refers to networked computer architectures in which application execution and storage are divided, to some extent, between client and server devices. In contrast to a predominately client-based or server-based application, a cloud-based application may store copies of data and/or executable program logic at remote server devices, while allowing client devices to download at least some of this data and program logic as needed for execution at the client device. An advantage of this approach is that the downloaded data and program logic can be tailored to the capabilities of the specific client device (e.g., a personal computer, tablet, or mobile phone) accessing the cloud based application.
An example class of application that can exploit the benefits of cloud-based computing is data-driven web-based services. Included in this class of applications are, for example, email, office productivity suites, blogs, online stores, games, as well as other types of networked applications. However, the development of these data-driven cloud-based applications often requires complex and time consuming programming and database design.
Attempts have been made to simplify the development of cloud-based applications. For example, rapid application development (RAD) tools have been offered. RAD tools are typically integrated development environments that assist a designer (e.g., a software architect and/or a programmer) in developing software applications by generating program logic based on high-level descriptions of what the designer wants to achieve. However, existing RAD tools used to develop data-driven cloud-based applications require designers to be proficient in computer programming and know how to design and manage databases. Additionally, these existing RAD tools often take the form of large, complex client-based applications that a designer must download and install on his or her computer. Furthermore, once the designer completes a version of the cloud-based application, the designer still has to move the cloud-based application to a web site for testing and public use.